import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

// 父组件使用HomeBanner组件上传递 数据过来  bannerList
class HomeBanner extends StatelessWidget {
  const HomeBanner({super.key, required this.bannerList});

  // 定义列表接收父组件传值
  final List bannerList;

  @override
  Widget build(BuildContext context) {
    // isNotEmpty 是List列表的一个方法 判断 非空
    // 判断数组长度是否大于0
    if (bannerList.isNotEmpty) {
      // CarouselSlider  自己额外下载安装的第三方的插件！！

      return CarouselSlider(
          // 要轮播的内容数组  有自己的格式的要求
          items: bannerList
              // 列表也有map方法，完之后，重新变成数组 主动调用函数 toList
              .map((item) => GestureDetector(
                    // map 里面的回调函数 也会被执行多次 遍历
                    // GestureDetector 内置的手势组件 提供很多不同的手势事件
                    // 点击操作 单击
                    onTap: () {
                      // print(kDebugMode);  是否点击了
                      if (kDebugMode) {
                        print('点击了, id:${item['imgName']}');
                      }
                    },
                    child: Container(
                      margin: const EdgeInsets.all(5),
                      child: Image.network(
                        item['imgUrl'],
                        fit: BoxFit.cover,
                      ),
                    ),
                  ))
              .toList(),
          // 常用配置
          options: CarouselOptions(
            autoPlay: true,
            autoPlayInterval: const Duration(seconds: 2),
            height: 150,
          ));
    } else {
      return Container();
    }
  }
}
